package com.knowledge.plus.自定义注解.example1;

import com.knowledge.plus.自定义注解.example1.annotation.MyField;
import org.junit.Test;

import java.lang.reflect.Field;

/**
 * 通过反射获取注解
 *
 * @author PF.Tian
 * @since 2021/09/13
 */
public class MyFieldTest {

    //使用我们的自定义注解
    @MyField(description = "用户名", length = 12)
    private String username;

    @Test
    public void testMyField() {

        // 获取类模板
        Class c = MyFieldTest.class;

        // 获取所有字段
        for (Field f : c.getDeclaredFields()) {
            // 判断这个字段是否有MyField注解
            if (f.isAnnotationPresent(MyField.class)) {
                MyField annotation = f.getAnnotation(MyField.class);
                System.out.println("字段:[" + f.getName() + "], 描述:[" + annotation.description() + "], 长度:[" + annotation.length() + "]");
            }
        }
    }
}
